// pages/myPosts/myPosts.js
Page({
    data: {
      posts: [],          // 帖子列表
      page: 1,            // 当前页码
      pageSize: 6,       // 每页数量
      total: 0,           // 总数量
      loading: false,     // 加载中状态
      noMorePosts: false, // 没有更多帖子
      userInfo: null      // 用户信息
    },
  
    onLoad() {
      this.checkUserInfo();
      this.loadMyPosts();
    },
  
    onShow() {
      // 页面显示时重新加载帖子，确保数据最新
      this.loadMyPosts(true);
    },
  
    onPullDownRefresh() {
      // 下拉刷新
      this.loadMyPosts(true);
      wx.stopPullDownRefresh();
    },
  
    onReachBottom() {
      // 触底加载更多
      if (!this.data.loading && !this.data.noMorePosts) {
        this.loadMyPosts();
      }
    },
  
    // 检查用户信息
    checkUserInfo() {
      const userInfo = wx.getStorageSync('userInfo');
      if (userInfo) {
        this.setData({ userInfo });
      } else {
        wx.navigateTo({ url: '/pages/login/index' });
      }
    },
  
    // 加载我的帖子
    loadMyPosts(refresh = false) {
      if (refresh) {
        this.setData({
          page: 1,
          posts: [],
          noMorePosts: false
        });
      }
  
      if (this.data.loading || this.data.noMorePosts) return;
  
      this.setData({ loading: true });
  
      wx.cloud.callFunction({
        name: 'getMyPosts',
        data: {
          userId: this.data.userInfo._id,
          page: this.data.page,
          pageSize: this.data.pageSize
        },
        success: res => {
          this.setData({ loading: false });
          console.log(res);
          if (res.result && res.result.success) {
            const newPosts = res.result.data.list;
            const total = res.result.data.total;
            
            this.setData({
              posts: refresh ? newPosts : [...this.data.posts, ...newPosts],
              page: this.data.page + 1,
              total: total
            });
            
            // 判断是否还有更多帖子
            this.setData({
              noMorePosts: this.data.posts.length >= total
            });
          } else {
            wx.showToast({
              title: res.result.message || '加载帖子失败',
              icon: 'none'
            });
          }
        },
        fail: err => {
          this.setData({ loading: false });
          console.error('加载我的帖子失败', err);
          wx.showToast({
            title: '加载失败',
            icon: 'none'
          });
        }
      });
    },
  
    // 前往帖子详情页
    goToPostDetail(e) {
      const postId = e.currentTarget.dataset.postId;
      wx.navigateTo({
        url: `/pages/postDetails/index?postId=${postId}`
      });
    },
  
    // 前往发布页面
    goToPublish() {
        wx.navigateTo({
            url: '/pages/postAdd/index'
          });
    }
  });